#include<stdio.h>
/*
 * 存取二进制文件(结构体数据)
 */

typedef struct{
	char name[20];
	int age;
	float score;
} Student;

int main()
{
	//将结构体类型数据存储到二进制文件
	FILE* fp = fopen("student.dat","wb");
	if(fp==NULL){
		printf("打开文件失败!\n");
		return -1;
	}

	Student stu = {"张三",28,95.5};
	//输出到二进制文件.
	//参数1：结构体指针； 参数2：结构体大小(块大小)；参数3：结构体数量(数据块数)
	fwrite(&stu, sizeof(stu), 1, fp); 
	fclose(fp);

	//从二进制文件读取数据
	FILE* f = fopen("student.dat","rb");
	if(f==NULL){
		printf("打开文件失败!");
		return -1;
	}
	//从二进制文件读取数据，参数含义同fwrite函数
	fread(&stu,sizeof(stu),1,f);
	//输出到屏幕
	printf("%s %d %.2f\n", stu.name,stu.age,stu.score); 
	fclose(f);

	return 0;
}
